
var b = 20;

function addB() {
    b++;
    return b;
}


function reduceB() {
    b--;
    return b;
}

function doubleB() {
    b *= 2;
    return b;
}

// nodeJS的模块化语法基于CommonJS模块化规范
// 如何暴露模块?
// 每个js文件都是一个独立的模块 => module对象(module.exports = {}) => 只有把变量和方法放到module.exports = {} 对象中, 才能暴露

// console.log(module);  // module = { exports:{}}

// module.exports = {}

// 单独保留 (给对象新增属性和方法)
// module.exports.a = a;
// module.exports.addA = addA;
// module.exports.reduceA = reduceA;
// module.exports.doubleA = doubleA;

// 整体暴露 (用新的对象覆盖原本的对象)
module.exports = {
    b: b,
    addB: addB,
    reduceB,
    doubleB
}

// console.log(module)


